Function: c-restore-<>-properties

c-restore-<>-properties is a byte-compiled function defined in cc-engine.el.gz.

Signature

(c-restore-<>-properties BEG END OLD-LEN)

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-engine.el.gz
(defun c-restore-<>-properties (_beg _end _old-len)
  ;; This function is called as an after-change function.  It restores the
  ;; category/syntax-table properties on template/generic <..> pairs between
  ;; c-new-BEG and c-new-END.  It may do hidden buffer changes.
  (c-save-buffer-state ((c-parse-and-markup-<>-arglists t)
			c-restricted-<>-arglists lit-limits)
    (goto-char c-new-BEG)
    (if (setq lit-limits (c-literal-limits))
	(goto-char (cdr lit-limits)))
    (while (and (< (point) c-new-END)
		(c-syntactic-re-search-forward "<" c-new-END 'bound))
      (backward-char)
      (save-excursion
	(c-backward-token-2)
	(setq c-restricted-<>-arglists
	     (and (not (looking-at c-opt-<>-sexp-key))
		  (progn (c-backward-syntactic-ws) ; to ( or ,
			 (and (memq (char-before) '(?\( ?,)) ; what about <?
			      (not (eq (c-get-char-property (point) 'c-type)
				       'c-decl-arg-start)))))))
      (or (c-forward-<>-arglist nil)
	  (c-forward-over-token-and-ws)
	  (goto-char c-new-END)))))